我遇到此程序的問題。這個程序基本上是將一個結構複製到char*
ptr中,然後再將它複製到另一個malloc
ed ptr中並讀取它。問題是,它不打印最後結構中的字符問題
#include<stdio.h>
#include<iostream>
#include<malloc.h>
#include<string>
#include<string.h>
using namespace std;
typedef struct
{
int tableId;
char tableName[30];
int tableHeaderPage; // NOT GETTING PRINTED
}sysTable;
int main()
{
sysTable record;
record.tableId=11;
strcpy(record.tableName,"babyyy");
record.tableHeaderPage=56;
char *recChar=(char*)malloc(sizeof(sysTable)+1);
memcpy(recChar,&record,sizeof(record));
char *recChar2=(char*)malloc(sizeof(sysTable)+1);
memcpy(recChar2,recChar,sizeof(record));
sysTable record2;
int offset=0;
memcpy(&record2.tableId,&recChar[offset],sizeof(record2.tableId));
offset+=sizeof(record2.tableId);
memcpy(&record2.tableName,&recChar[offset],sizeof(record2.tableName));
offset+=sizeof(record2.tableName);
memcpy(&record2.tableHeaderPage,&recChar[offset],sizeof(record2.tableHeaderPage));
cout<<"\n Record Details\n";
cout<<"\n table Id: "<<record2.tableId;
cout<<"\n table Name: "<<record2.tableName;
cout<<"\n tableHeaderPage: "<<record2.tableHeaderPage; // PROBLEM THIS IS NOT PRINTING PROPERLY.
return 0;
}
打印`tableHeaderPage`時是否完全沒有輸出,或者你得到的東西不是你所期望的? – 2011-12-16 18:41:27
你的程序不能編譯。你能否複製粘貼*精確*程序去解決你的問題?請參閱http://sscce.org/。 – 2011-12-16 18:41:51