У меня есть следующий код, но результат нулевой для всех компонентов структуры:Списка с STRUCT указателем
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _TransactionType
{
char field1[20];
char field2[20];
}TransactionType;
int main(int argc, char *argv[]) {
int i;
int numreg = 0;
char temp[12];
TransactionType *dbTransaction;
dbTransaction = (TransactionType*) calloc(10,sizeof(TransactionType));
for(i=0; i<5;i++)
{
memset(temp,0,sizeof(temp));
sprintf(temp,"%d",i);
strcpy(dbTransaction->field1, temp);
dbTransaction->field1[strlen(dbTransaction->field1)] = '\0';
strcpy(dbTransaction->field2, temp);
dbTransaction->field2[strlen(dbTransaction->field2)] = '\0';
numreg++;
dbTransaction++;
}
printf("reg = %d\n", numreg);
for (i=0; i<numreg;i++)
{
printf("dbTransaction->field1 = %s\n",(dbTransaction + i)->field1);
printf("dbTransaction->field2 = %s\n",(dbTransaction + i)->field2);
}
return 0;
}
мне нужно восстановить значение структуры. Пожалуйста, любой вид помощи будет оценить Заранее спасибо за помощь
[. Пожалуйста, смотрите эту дискуссию о том, почему не бросить возвращаемое значение 'таНос()' и семьи в 'C'] (http://stackoverflow.com/д/605845/2173917). –
Какой смысл устанавливать терминаторы в явном виде? Они уже есть. –
... и если это не так, 'strlen' не поможет. –