我试图在C的数组末尾附加一个浮点数。这是我使用的代码:
#include <stdlib.h>
#include <stdio.h>
int main()
{
float timestamps[] = {0,3,2,1,5};
float ISI[25];
int i,j;
for (i = 0; i<5; i++ )
{
for (j=0;j<5;j++)
{
float diffTimestamp = timestamps[j] - timestamps[i];
//remove points greater than 1 sec and less than -1sec
if((diffTimestamp<=1.0)&&(diffTimestamp>=-1.0)){
//append the diffTimestamp to ISI array
}
else
continue;
}
}
return 0;
}
我尝试使用Google搜索并遇到了几个类似的问题: Appending a value to the end of a dynamic array。另一个常见的事情是使用一个结构来放大小变量和数组。
但由于我对C的了解有限,我无法实现代码。
答案 0 :(得分:2)
所以当你初始化数组时:
float timestamps[] = {0,3,2,1,5};
你正在做的是实际分配一个完全相同大小的内存块。与脚本语言不同,在这种情况下,数组不是数据类型,而是一个连续保存5个浮点数的内存块。
应该做的是你应该使用linked list来实现你在这里尝试的东西。
编辑:如果你知道需要多大的内存,你也可以使用malloc。