c - 从类型'char*'(矩阵+结构)分配给类型'char*[length]'时不兼容的类型
问题描述
我正在做我的作业。我们必须用新类型的结构制作矩阵。
#include<stdio.h>
typedef char* String;
typedef struct{
String Name[10];
String ID[6];
float yo;
}data;
int main(){
data user[3][3];
// some code
// wanna assign value
user[0][0].Name="Charles";
user[0][0].ID="123123";
user[0][0].yo=20;
// another code
}
当我尝试编译它时,它显示错误
[错误] 从 type'char*' 分配给 type 'char*[10]' 时类型不兼容
如何解决?
解决方案
我认为您的 typedef 并不能帮助您理解问题。
typedef char* String;
String Name[10];
在这里,您写了String Name[10]
which 等价于char *Name[10]
which is 和 char 上的指针数组。
user[0][0].Name="Charles";
在这里,您将值Charles
(可以理解为 char*)分配给类型的变量char *[]
此外,如果你想分配一个char *
值(假设你解决了第一个问题),你可以使用strcpy
orstrdup
例如,(如果你使用strcpy
不要忘记malloc
)
希望你能理解
推荐阅读
- angular - ionic 4 - 如何动画过渡到根页面
- regex - 正则表达式匹配阿拉伯文本中的电话号码
- django - 在 django admin 中上传文件时出现 csv 错误
- c# - 如何从 C# 中的字符串(逗号分隔值)中获取第二个值
- c# - 如何覆盖 Microsoft 标识的方法?
- javascript - 关键焦点在 jquery 插件 DataTables 中不起作用
- python - 使用 Python 的 list + map 不返回 lambda 函数
- powershell - 如何通过脚本设置 Azure DevOps 版本的描述?
- javascript - Three.js 阻止了
- laravel - 从 MySql 数据库中删除 JSON 对象值 Laravel