我對C很新,所以爲了學習它,我試圖創建一個輸出龍曲線的程序。 這是我走到這一步:從類型'array *'分配類型'array [256]'時的不兼容類型
#include <stdio.h>
#include <string.h>
#define ebene 5
char str_n[ebene-1];
char tmp[256]; // ="1"; // 1=R, 0=L
char text[256];
int a_index=0;
char switch_middle(char iarray[256]) {
int num=((2^a_index-1)-1)/2+1; // Nummer der Zahlen pro ebene |-1|/2|+1 -> Index des mittleren Buchstaben
if(num>=0) {
iarray[num]='0';
} else {
iarray[0]='\0';
}
}
int main() {
printf("Hauptschleife erreicht");
while(a_index<ebene) {
//snprintf(text, sizeof text, "%s1%s", tmp, switch_middle(tmp));
strcpy(text, tmp);
strcpy(text, "1");
strcpy(text, switch_middle(tmp)); // Error occures here!
//str_n[a_index]=text;
for(long i=sizeof(tmp)/sizeof(tmp[0]); i--;) {
tmp[i]=text[i];
}
printf("Ebene: %d\n", a_index);
//printf(" Wert: %s", str_n[a_index]);
printf(" Wert: %d\n", text);
a_index++; // für Mathefunktionen
}
}
嘗試編譯這給了我一堆警告和一個錯誤;我在這個問題的標題中提到了一個(從'char *'類型分配類型'char [256]'時不兼容的類型)。 所以,是的。任何幫助,將不勝感激(:
*編輯:好吧,下面的評論固定了大多數問題;現在只剩下一個警告,那就是「傳遞'strcopy'的參數2使得整數指針沒有投射'和'expected'const cgar * restrict',但參數的類型是'char',作爲包含string.h的註釋。當我嘗試運行該程序時,它給了我一個內存訪問錯誤。 。上面的代碼
*Edit²:固定感謝大家以下(:
'strcpy(text,switch_middle(tmp));'用'char switch_middle(char iarray [256])''? – P0W
'tmp = text;'再次出錯 –
該消息對應哪一行? –