c语言结构体中指针数组怎样赋值

问题描述

c语言结构体中指针数组怎样赋值
定义一个结构体
struct AS
{
char *p[1];
};
怎样用gets函数给指针数组赋值呢?

解决方案

看Unix/Linux上的man:

Standard C Library Functions gets(3C)
NAME
gets fgets - get a string from a stream

SYNOPSIS
#include

 char *gets(char *s); char *fgets(char *s int n FILE *stream);

DESCRIPTION
The gets() function reads bytes from the standard input
stream (see intro(3)) stdin into the array pointed to by
s until a newline character is read or an end-of-file con-
dition is encountered. The newline character is discarded
and the string is terminated with a null byte.
....

gets是标准库函数,要求传入的是一个数组的地址。其实是要求caller应当分配空间给他。你的结构体中指针数组指向了已经分配好的内存吗?如果没有就别想了。想用就自己先给他空间

时间: 2024-10-24 11:58:58

c语言结构体中指针数组怎样赋值的相关文章

结构体中指针赋值问题的分析及C代码示例

问题描述 某结构体的定义如下: typedef struct { int iAge; // 年龄 char szAddr1[100]; // 地址1 char *pszAddr2; // 地址2 char **pszAddr3; // 地址3 } T_PeopleInfo; 请问如何对结构体中的各个成员变量(尤其是指针变量)进行赋值? 问题分析及C代码示例 我们可以看到,在结构体T_PeopleInfo中,pszAddr2和pszAddr3均为指针,其中pszAddr2为一级指针,pszAddr

struct-数组赋值和结构体中的数组赋值问题

问题描述 数组赋值和结构体中的数组赋值问题 typedef struct _Teacher{ char name[20]; int age; }Teacher; void main(){ Teacher t1; t1.age=20; t1.name="abc";//报错为什么? char name[20]="abc";//不报错 } 求大牛给个详细的解释,对于abc C++编译器是如何处理的?是分配内存放在全局区,还是当做字面值 解决方案 首先,其实你是忘记了C++

struct-C语言中结构体中的数组,不能直接赋值吗

问题描述 C语言中结构体中的数组,不能直接赋值吗 设有定义:struct{char mark[12];intnum1;double num2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是(C) (A) t1=t2; (B) t2.num1=t1.num1; (C) t2.mark=t1.mark;//mark为结构体中的数组,不能直接赋值?? (D) t2.num2=t1.num2; ?====如题参考答案说为结构体中的数组,不能直接赋值,为什么呢?那应该怎么赋值呢?求大侠指教 解决

详解C语言结构体中的函数指针_C 语言

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式,用函数指针指向相应函数,以此达到调用函数的目的. 函数指针 函数类型 (*指针变量名)(形参列表):第一个括号一定不能少. "函数类型"说明函数的返回类型,由于"()"的优先级高于"*",所以指针变量名外的括号必不可少.  注意指针函数与函数指针表示

C语言 结构体和指针详解及简单示例_C 语言

指针也可以指向一个结构体,定义的形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1 = { "Tom", 12, 18, 'A', 136.5 }; //结构体指针struct stu *pstu = &stu1; 也可以在定义结构体的同时定义结构

c语言-C语言结构体的指针问题。

问题描述 C语言结构体的指针问题. struct GenInfo { uint64_t (*next)(struct GenInfo * const); enum GeneratorType type; union { struct GenInfo_Constant constant; struct GenInfo_Counter counter; struct GenInfo_Discrete discrete; struct GenInfo_Exponential exponential;

struct-C语言结构体变量指针问题,求助

问题描述 C语言结构体变量指针问题,求助 #include #include #include #define N 10 typedef struct { char name[10]; double price; struct { int year;int month;int day ;}date; }STREC; int fun(STREC a,double p) { int i,j=0; double q; for(i=0; i < N ; i++,a++) { q=a->price; i

C语言结构体中的函数指针

引言 指针是C语言的重要组成部分, 于是深入理解指针并且高效地使用指针可以使程序员写出更加老练的程序.我们要记住指针是一个指向内存地址的变量.指针可以引用如int.char--常见的数据类型,例如: int * intptr; // 声明一个指向整型值的指针 int intval = 5 ; // 定义一个整型变量 intptr = & intval ; // intptr现在包含intval的地址 指针不仅仅指向常规的类型还可以指向函数 函数指针 函数指针的内容不难理解,不再赘述,参见<C

C语言结构体中位域(位段)的使用

#include <stdio.h> #include <stdlib.h> struct bit { char i1:1; char i2:1; char i3:1; char i4:1; char i5:1; char i6:1; char i7:1; char i8:1; }; int main() {     char x=1;     struct bit *pb=(struct bit*)&x;       pb->i5=1;       printf(&