我開始用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是不可能),並學會使用調試器。 – 2012-03-12 11:43:33
你能建議我一些參考嗎?其實我使用geany :-) – DreamIt 2012-03-12 11:47:52
@sataranjasvami,請參閱http://stackoverflow.com/tags/c/info – 2012-03-12 11:49:03