【发布时间】:2013-10-06 09:45:14
【问题描述】:
我对 C 很陌生,所以为了学习它,我试图创建一个输出龙曲线的程序。 到目前为止,这是我得到的:
#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]'时不兼容的类型)。 是的。任何帮助将不胜感激(:
*编辑:好的,下面的 cmets 修复了大部分问题;现在只剩下一个警告,那就是“传递 'strcopy' 的参数 2 会在没有强制转换的情况下从整数生成指针”和“预期的 'const cgar * restrict' 但参数的类型是 'char'”作为包含的注释string.h。当我尝试运行该程序时,它给了我一个内存访问错误。我在上面的代码中标记了这些行。
*编辑²:已修复。感谢下面的所有人(:
【问题讨论】:
-
strcpy(text, switch_middle(tmp));和char switch_middle(char iarray[256])? -
tmp=text;又是错误 -
消息对应哪一行?
-
好的,你能在你的代码中用注释标记第 31 行吗?
-
数组不可赋值
标签: c