を に変換しようとしint
ていchar*
ます。私は Mac OS X を使用しているためitoa
、 を使用できません。非標準であるため、sprintf
orを使用しようとしていますsnprintf
が、取得し続けていsegmentation fault: 11
ます。これが私が持っているものです:
snprintf(msg, sizeof(char *), "%d", 1);
それで、私は提案を望んでいます、私は何ができますか?
msg
である は、char *
使用できるメモリを指していない可能性があります。そのため、最初に文字列を格納するために使用されるメモリを動的に割り当てる必要があります。
msg = malloc(12); // 12 is an arbitrary value
snprintf(msg, 12, "%d", 1); // second parametre is max size of string made by function
または、静的バッファーを宣言することもできます。そうすれば、メモリを解放する必要はありません。
char msg[12]; // again, 12 is an arbitrary value
snprintf(msg, sizeof(msg), "%d", 1);
msg をどのように宣言しますか?
このようなものが動作するはずです:
char msg[15];
snprintf(msg, sizeof(msg), "%d", 1);
の 2 番目の引数snprintf
は、文字のサイズではなく、文字列の長さであることに注意してください。