[英]calloc struct in C
我正在嘗試初始化一個指向結構的指針,其中包含0.0值。 看看以下情況:
typedef struct
{
float a;
float b;
float c;
} structA;
structA *ptr = calloc(100000, sizeof(structA));
我希望* ptr中的所有值都是structA,初始值為{0.0,0.0,0.0},但這不是我現在所擁有的。 * ptr的許多索引正確顯示,但某些索引顯示奇怪的值(如{0.0,0.0,10241256124.0})。
如果我嘗試malloc,就會發生同樣的事情。
我該怎么辦?
你做錯了什么......我從來沒有使用過objective-c,所以我將下面的代碼插入到ideone.com中 ,它按預期運行...(打印完成,沒有失敗,因為所有值都為零) d。 我的猜測是你沒有正確檢查,因為你的編譯器中不太可能存在錯誤......
#include <malloc.h>
typedef struct
{
float a;
float b;
float c;
} structA;
int main() {
int count = 100000;
int i;
structA *ptr = calloc(count, sizeof(structA));
if(ptr) {
for(i=0;i<count;i++) {
if(ptr[i].a || ptr[i].b || ptr[i].c) {
printf("fail\n");
}
}
printf("done\n");
}
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.