我正在编程一些代码,我遇到了这个问题。我声明了两个数组,其中一个数组被称为start,它被初始化为字符串hello。第二个数组被称为user,应该用for循环声明为_。会发生什么事虽然是我的数组调用start被修改,所以我看起来就像这样:一个数组影响另一个,两个数组分别声明
Printed word: Hello
Array Length: 5
_____o
为什么我开始阵列被改写?对不起,如果这是一个小问题,我自己学习。
#include <stdio.h>
#include <string.h>
int main(void)
{
size_t length = 0;
char start [] = {"Hello"};
printf("\nPrinted word: %s\n", start);
length = strlen(start);
printf("Array Length: %zi\n", length);
char user[] = {0};
for(size_t x = 0; x < length; x++){ //starting here
user[x] = '_';
}
printf("%s\n",start);
}
我没有把变量长度放到数组声明中的原因是因为我的编译器(xcode)得到一个错误,指出“变量大小的对象可能未被初始化”。 把10的索引后,代码工作正常!所以缺少的索引是这个问题谢谢。 有没有办法允许数组大小根据长度而变化? – user2335238 2013-04-30 09:46:09
@ user2335238答案已更新请参阅编辑部分以了解您的问题的答案 – MOHAMED 2013-04-30 09:55:35