私はメタC言語から、Cで始まるよ、基本的な、短い時間警告:PHPとHTMLの割り当ては、キャストせずにポインタから整数を作る、セグメンテーションフォールト
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
compare(const void * a, const void * b){
return (*(int*)a - *(int*)b);
}
int main(){
int arr_size = 10;
int j;
char array[arr_size][2];
char str[50];
char output[50];
// fill the array with string and random integers
for (j=0; j<arr_size; j++) {
strcpy(str, "array");
array[j][0] = str; //i've should put *str
array[j][1] = rand() % arr_size+1;
}
// print the array
for (j=0; j<arr_size; j++) {
strcpy(str, "");
strcpy(output, "");
sprintf(str, "%u", array[j][0]); // %u should be %s but return me segmentation fault
strcat(output, str);
strcat(output, " ");
sprintf(str, "%i", array[j][1]);
strcat(output, str);
printf(output); printf("\n");
}
printf("\n");
}
これは完全なコードです、
array[j][0] = str;
と
sprintf(str, "%u", array[j][0]);
を見て、私は前*
を配置する必要があります警告メッセージを渡すが、私はポインタを宣言していない。なぜこのソリューションですか?
%u
を%s
に変更すると、私はセグメント違反を返します。何が問題なのですか?
をCについての良いプログラミングの本を読んで数分で説明するCであるため、(あなたは、フォーラムでより良い説明を取得します不可能)、デバッガを使用する方法を学びます。 –
私はいくつかの参考資料を提案できますか?実際に私はgeanyを使っています:-) – DreamIt
@ sataranjasvami、http://stackoverflow.com/tags/c/info –