我设置了一个结构,其中包含一个数组 8位无符号整数。 在编译时,这个数组的大小是未知的 - 所以我想 我把它变成一个指针,然后再创建数组。 这是一个简单的例子:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
struct value {
uint8_t *data;
};
struct value values[10];
void fillIt(int whichOne)
{
uint8_t tempArray[2];
switch(whichOne)
{
case 0:
tempArray[0]=10;
tempArray[1]=20;
break;
case 1:
tempArray[0]=30;
tempArray[1]=40;
break;
default:
break;
}
values[whichOne].data=tempArray;
}
int main(void)
{
fillIt(0);
printf("values[0] %u %u\n",values[0].data[0],values[0].data[1]);
fillIt(1);
printf("values[0] %u %u\n",values[0].data[0],values[0].data[1]);
printf("values[1] %u %u\n",values[1].data[0],values[1].data[1]);
return 0;
}
这将输出以下内容
values[0] 10 20
values[0] 30 40
values[1] 30 40
所以第二次调用fillIt()时,values [0] .data包含与之相同的数据 值[1] .data,因为两者都指向同一个临时数组,我猜。 如何创建个人&#39;我能指出的数组?