假设我有一个指针char *a
。
和
struct b {
unsigned short num;
unsigned short size;
unsigned char *a;};
在这种情况下,如何将内容分配给'a'? 感谢。
答案 0 :(得分:1)
声明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 :(得分:0)
取决于。您是否希望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)
。
答案 2 :(得分:0)
我已动态分配内存并已分配到pointer a
。
#define EXAMPLE_SIZE 25
main ()
{
struct b sample= { 0, };
sample.a = malloc ( EXAMPLE_SIZE * sizeof (unsigned char) );
}
答案 3 :(得分:0)
b obj;
unsigned char ch = 'F';
obj.a = &ch;
答案 4 :(得分:0)
您可以多种方式分配
1.动态分配内存(如果需要用户输入)
// you can use realloc also if you want
struct b t1 ;
b.a = malloc(x * sizeof (char) );
//then you can read user from input.
2。初始化可以使用字符串升级
struct b t2 = {0,4,"hey"};