原帖由 converse 于 2008-6-3 16:08 发表
测试代码如下:
#include
#include
using namespace std;
typedef struct Test
{
string name;
int a;
}SoftwareInfo;
int main()
{
Test tTest;
memset(&tTest, 0, s ...
原帖由 chrisyan 于 2008-6-3 21:02 发表
写c++的根本就不会这样写,c++中不需要typedef 一个struct.
struct和class的区别就是:1.默认的访问级别为public,2继承时默认是public继承。
所以你一memset,就都破坏掉了。
这个东西还要用gdb调?根本不需要
原帖由 converse 于 2008-6-3 16:08 发表
测试代码如下:
#include
#include
using namespace std;
typedef struct Test
{
string name;
int a;
}SoftwareInfo;
int main()
{
Test tTest;
memset(&tTest, 0, s ...
原帖由 勿丑于 于 2008-6-6 08:51 发表
这个例子里面没有错误,很可能是虚惊一场。
我看了C++,我差点疯了,我认为string name在生成实例tTest的时候没有被分配内存,分配内存的时候,C++可以重载=然后malloc,也就是说,name的地址正好是tTest的地 ...
原帖由 whyglinux 于 2008-6-6 21:11 发表
>> >> 这个例子里面没有错误,很可能是虚惊一场。
诚然,程序运行正确不能证明程序中不存在错误。但是象搂主的程序,在前面有的帖子中已经贴出了程序运行错误的情况。只要有一个运行错误已经可以说明程序中存在问题了,绝对不会是“虚惊一场”。
原帖由 reesun 于 2008-6-12 00:43 发表
将程序更改为以下代码,试试:
#include
#include
using namespace std;
typedef struct Test
{
string name;
int a;
}SoftwareInfo;
int main()
{
SoftwareInfo tTest; ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |