strncatに関するエラー – プログラミング – Home

通知
すべてクリア

[解決済] strncatに関するエラー


Gon
 Gon
(@Gon)
ゲスト
結合: 22年前
投稿: 17
Topic starter  

strncat,strcatを使用時に出たエラーについてお聞きしたい事があります。

文字列操作をしようと思い、strncatを使用したのですが
下記のようなエラーが出てしまい、原因がいまいち分かりません。
試しに書いたプログラムは以下の通りです。

 char *tmp = Test
 char *res = NULL;
 strncat( res, tmp, sizeof(tmp) );

このプログラムを実行するとstrncatの部分で、
「ハンドルされていない例外は~.exe (MSVCRTD.DLL)にあります
 :0xC0000005 Access Violation」
と出てしまいます。
これはやはり上記に書いた私のプログラムがおかしいのでしょうか…。

ちなみに実行環境はVC++6.0で、<string.h>もちゃんとインクルード
してあります。


引用未解決
トピックタグ
n
 n
(@n)
ゲスト
結合: 22年前
投稿: 90
 

resの指す先に何もないのに、そこに何かをコピーしてもいいんですか?


返信引用
III
 III
(@III)
ゲスト
結合: 22年前
投稿: 6
 

ポインタの使い方はご存知ですか?
この問題はそこから始まります。

ご存知ならちょっくら説明してみて!!


返信引用
PATIO
(@patio)
Famed Member
結合: 5年前
投稿: 2660
 

文字列に限りませんが、関数の引数にポインタを要求されている場合、
これはポインタ変数を宣言してそれを渡しなさいと言っているわけではありません。
関数の引数には参照渡しと値渡しがあります。
この違いをきちんと理解してコードを書かないと自分では訳がわからないバグに
悩まされる事になります。
質問内容からするとこの辺のポインタとは?とか基本的な知識が足りないようです。
C言語の入門書のポインタに関する記述と関数の引数に関する記述をよく読んで
もう一度考え直して見る事をお勧めします。


返信引用
Gon
 Gon
(@Gon)
ゲスト
結合: 22年前
投稿: 17
Topic starter  

nさん、Ⅲさん、PATIOさん有難う御座います。
プログラムを始めたばかりの素人なので
ポインタをしっかりと理解できていませんでした。

C言語の本を片手にもう一度プログラムをしたところ、
上手くエラーを取る事が出来ました。

もう一度、じっくりとポインタの勉強をしてから
プログラムをしていきたいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました