int* dec2bin(int y){
int *arr = (int*)malloc(sizeof(int)*5);
int i;
for (i=0; i<5; i++) arr[i]=0;
return arr;
}
Run Code Online (Sandbox Code Playgroud)
这是函数dec2bin的一部分.
在这段代码,我做的arr[0]到arr[4]的一切0.
但是这个函数返回值1070192.我想回来00000.
我该怎么做才能解决这个问题?
很可能你正在打印返回的地址malloc().
例如,您需要一个循环来打印内容
int *dec2bin(int size)
{
return calloc(size, sizeof(int));
}
int main(void)
{
int *data;
int index;
int size;
size = 5;
data = dec2bin(size);
if (data == NULL)
return -1; /* allocation error */
for (index = 0 ; index < size ; index++)
printf("%d", data[index]);
printf("\n");
free(data);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以看到我使用过的calloc(),那是因为您要将所有值初始化为0,否则请使用malloc().