如何從一個結構體賦值給另一個結構體。這是我的代碼。用另一個結構體初始化一個結構體
我相信我分配的是我不想做的結構地址。我想將「temp」的值賦給「a」。我評論了我需要幫助的部分。謝謝
也偏離主題..我怎麼張貼代碼,而不必縮進我自己的每一行,一行一行?
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
typedef struct dynArrStruct
{
double value1;
int value2;
int value3;
}dynArr;
void init(dynArr* a)
{
dynArr temp;
temp.value1 = (double)(rand()) * rand()/rand();
temp.value2 = rand()%100;
temp.value3 = rand()%1000;
printf("In init(): value1: %14.5f, value2: %6d, value3: %6d\n",
temp.value1, temp.value2, temp.value3);
a = &temp; // THIS LINE
}
int main(int argc, char** argv)
{
int i;
dynArr a1[SIZE];
dynArr* a2[SIZE];
for(i = 0; i < SIZE; i++)
{
init(&(a1[i]));
init(a2[i]);
}
return 0;
}
選擇所有使用鼠標的代碼行,然後按Ctrl + K – 2013-02-19 15:09:29
memcpy()也許? – m0skit0 2013-02-19 15:10:05
如果您複製到尚未初始化的指針,您的代碼中可能存在未定義的行爲,就像'a2'數組的情況一樣。 – 2013-02-19 15:13:20