用c语言写一个对typedef struct结构体中的相关数据赋值的函数
时间: 2023-02-17 11:07:28 浏览: 78
下面是一个示例函数,用于对结构体 "MyStruct" 中的数据进行赋值:
```c
typedef struct {
int a;
float b;
char c;
} MyStruct;
void assignValues(MyStruct* s, int a, float b, char c) {
s->a = a;
s->b = b;
s->c = c;
}
int main() {
MyStruct s;
assignValues(&s, 1, 2.5, 'x');
return 0;
}
```
在这个示例中,函数 "assignValues" 接受三个参数,分别为结构体指针、整型值、浮点型值和字符值,并将这些值分别赋给结构体 "MyStruct" 中的数据。
相关问题
C语言对一个结构体变量写入向量的数据
假设我们有一个结构体变量`vector`,它包含了一个指向向量数据的指针`data`和向量的长度`length`。我们可以通过以下代码向这个向量写入数据:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int *data;
int length;
} Vector;
int main() {
// 创建一个长度为5的向量
Vector vector;
vector.length = 5;
vector.data = malloc(vector.length * sizeof(int));
// 向向量写入数据
for (int i = 0; i < vector.length; i++) {
vector.data[i] = i;
}
// 打印向量的数据
for (int i = 0; i < vector.length; i++) {
printf("%d ", vector.data[i]);
}
// 释放向量的内存
free(vector.data);
return 0;
}
```
上述代码中,我们使用`malloc`函数动态分配了一个长度为`vector.length`的整型数组,并将它赋值给`vector.data`指针。接着,我们使用`for`循环向向量中写入数据,最后再使用`for`循环打印向量的数据。最后,我们需要使用`free`函数释放向量的内存。
使用memset对结构体类型的数据赋值为0
可以使用 memset 函数对结构体类型的数据赋值为 0。例如:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
int id;
char name[20];
} Student;
int main() {
Student s;
memset(&s, 0, sizeof(s));
printf("id = %d, name = %s\n", s.id, s.name);
return 0;
}
```
输出:
```
id = 0, name =
```