迭代c中的整数数组

时间:2015-03-09 10:51:08

标签: c arrays

我在c。

中编写了下一个代码

我做错了什么:

int *ip;
int i;
ip = (int*) malloc(5*sizeof(int));

for(i=0;i<5;i++){
  ip[i]=i;
}

当我使用调试器运行代码时,它就像我没有通过IP迭代一样。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

其作品

#include <stdio.h>
#include <stdlib.h>
int main()
{
     int *ip;
     int i;
     ip = (int *) malloc(5*sizeof(int));

     for(i=0;i<5;i++){
         ip[i]=i;
     }

     for(i=0;i<5;i++){
          printf(" %d ",ip[i]);
      }
      free(ip);
      return 0;
}

out put 0 1 2 3 4

答案 1 :(得分:0)

我假设问题如下:当您使用调试器逐步遍历程序时,您无法看到它运行循环5次。

原因可能在于C编译器执行的优化,特别是循环展开

如果您使用gcc,请尝试选项-O0以避免优化。这可能有助于调试。