c++ 定义了一个结构体数组
typedefstruct_TEST_{charp1;cahrp2;char*p3;}TEST;TESTtest=newTEST[100];test.p3=newchar...
typedef struct _TEST_
{
char p1;
cahr p2;
char *p3;
}TEST;
TEST test = new TEST[100];
test.p3 = new char;
这样给p3开辟空间对吗?
如何给p3开辟一个动态的空间?
不好意思,因为太急了所以写错了,应该是 TEST * test = new TEST[100];
test.p3 = new char;
给p3赋值的长度不一样,因为我用的数据长度是不确定的,所以刚开始test.p3 = new char这样开辟时。赋值的时候,第一条数据是对的,p3里存了6个数,可是到了第二条的前8个数是对的,可是到后面就错了(第二条长度为45);不知道为什么会这样;
我用memcoy(*test[i], pBff, Length);i为我循环的变量,pbff是读取来的数据,length是数据的长度 展开
{
char p1;
cahr p2;
char *p3;
}TEST;
TEST test = new TEST[100];
test.p3 = new char;
这样给p3开辟空间对吗?
如何给p3开辟一个动态的空间?
不好意思,因为太急了所以写错了,应该是 TEST * test = new TEST[100];
test.p3 = new char;
给p3赋值的长度不一样,因为我用的数据长度是不确定的,所以刚开始test.p3 = new char这样开辟时。赋值的时候,第一条数据是对的,p3里存了6个数,可是到了第二条的前8个数是对的,可是到后面就错了(第二条长度为45);不知道为什么会这样;
我用memcoy(*test[i], pBff, Length);i为我循环的变量,pbff是读取来的数据,length是数据的长度 展开
6个回答
展开全部
new函数返回的是一个指针,而你的test是一个结构体。
编译肯定过不了。
你可以定义一个TEST的指针,通过指针开辟存储空间。
typedef struct _TEST_
{
char p1;
char p2;
char *p3;
}TEST;
TEST *p=new TEST[100];
p->p3=char;
需要说明的是
这个语句
TEST *p=new TEST[100];
给p用new分配 TEST[100]的空间大小是无意义的
除非你你直接定义一种类型的指针
因为p局限于结构体类型大小
编译肯定过不了。
你可以定义一个TEST的指针,通过指针开辟存储空间。
typedef struct _TEST_
{
char p1;
char p2;
char *p3;
}TEST;
TEST *p=new TEST[100];
p->p3=char;
需要说明的是
这个语句
TEST *p=new TEST[100];
给p用new分配 TEST[100]的空间大小是无意义的
除非你你直接定义一种类型的指针
因为p局限于结构体类型大小
展开全部
1TEST test = new TEST[100];这句话会报错吧,new开辟一段内存会返回所开辟空间的首地址,这个与test类型不对应,?2至于test.p3 = new char;这样写实际是p3作为new char的地址,3要给p3开辟空间,4你可以设个p3的指针,5不过为p3开辟空间要做什么呢? !!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先TEST test = new TEST[100];这句话会报错吧,new开辟一段内存会返回所开辟空间的首地址,这个与test类型不对应,至于test.p3 = new char;这样写实际是p3作为new char的地址,要给p3开辟空间,你可以设个p3的指针,不过为p3开辟空间要做什么呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
差不多吧,不过test指向是一个数组,需要用指针,
TEST * test = new TEST[100];
由于test不是对象,所有要有下标:
test[2].p3 = new char('A'); 单独变量也可以同时初始化
TEST * test = new TEST[100];
由于test不是对象,所有要有下标:
test[2].p3 = new char('A'); 单独变量也可以同时初始化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new函数返回的是一个指针,test是一个数组
#include "stdio.h"
typedef struct _TEST_
{
char p1;
char p2;
char *p3;
}TEST;
int main()
{
TEST *test = new TEST[100];
test[2].p3 = new char('A');
printf("%s",test[2].p3);
}
#include "stdio.h"
typedef struct _TEST_
{
char p1;
char p2;
char *p3;
}TEST;
int main()
{
TEST *test = new TEST[100];
test[2].p3 = new char('A');
printf("%s",test[2].p3);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询