在C中的结构中指定指针?
假设我有一个指针在C中的结构中指定指针?,c,pointers,struct,C,Pointers,Struct,假设我有一个指针char*a #define EXAMPLE_SIZE 25 main () { struct b sample= { 0, }; sample.a = malloc ( EXAMPLE_SIZE * sizeof (unsigned char) ); } 及 在这种情况下,我应该如何将内容分配给“a”? 谢谢。视情况而定。您想让foo.a指向a的功能吗?然后: struct b foo = ...; foo.a = a; 还是希望foo.a指向a的副本?然后: st
char*a
#define EXAMPLE_SIZE 25
main ()
{
struct b sample= { 0, };
sample.a = malloc ( EXAMPLE_SIZE * sizeof (unsigned char) );
}
及
在这种情况下,我应该如何将内容分配给“a”?
谢谢。视情况而定。您想让
foo.a
指向a
的功能吗?然后:
struct b foo = ...;
foo.a = a;
还是希望foo.a
指向a
的副本?然后:
struct b foo = ...;
foo.a = malloc(sizeof(char) * lengthOfA);
memcpy(foo.a, a, lengthOfA);
其中
lengthOfA
是strlen(a)
,如果您有一个以null结尾的字符串。我动态分配了内存并分配给指针a
#define EXAMPLE_SIZE 25
main ()
{
struct b sample= { 0, };
sample.a = malloc ( EXAMPLE_SIZE * sizeof (unsigned char) );
}
声明
struct b
类型的变量,然后将a
指向现有内存位置,或使用malloc为其分配内存
struct b buf;
buf.a = (unsigned char *)malloc(YOUR_SIZE_IN_BYTE); // allocated memory for a
// fill content into a here
您可以通过多种方式分配
1.动态分配内存(如果需要用户输入)
二,。而初始化可以使用字符串字符串
struct b t2 = {0,4,"hey"};
它取决于结构b的含义。
// you can use realloc also if you want
struct b t1 ;
b.a = malloc(x * sizeof (char) );
//then you can read user from input.
struct b t2 = {0,4,"hey"};