c - 错误:C 中“->”标记之前的预期标识符或“(”
问题描述
我有一个结构,位于我的头文件中,我想将其成员设置为我在 main() 函数中拥有的值,即“大小”和“上限”。我得到以下信息:error: expected identifier or ‘(’ before ‘->’ token struct Array->size = size;
对于带有“cap”的行,我也得到了同样的错误。
我已经提供了我的头文件、结构所在的位置以及我的函数定义文件。
头文件:
#include <stdio.h>
struct Array {
unsigned int size;
unsigned int cap;
int data;
};
struct Array *newArray(unsigned int size, unsigned int cap); //Prototype
函数定义文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
struct Array *newArray(unsigned int size, unsigned int cap) {
struct Array->size = size;
struct Array->cap = cap;
}
我故意不将我的头文件包含在我的函数定义文件中,因为我将它包含在我的主文件中。两次包含 header.h 会给我更多错误/警告。
有人可以帮忙吗?谢谢
解决方案
您正在尝试将某些内容分配给确实有效的类型。
struct Array *newArray(unsigned int size, unsigned int cap) {
struct Array->size = size;
struct Array->cap = cap;
}
以下是修复代码的方法:
struct Array *newArray(unsigned int size, unsigned int cap) {
struct Array *arr = malloc(sizeof(struct Array));
if(!arr)
return NULL;
arr->size = size;
arr->cap = cap;
return arr;
}
推荐阅读
- php - 我如何使用 php https://www.fembed.com/api#download-video 使用 curl -X POST api
- ansible - Ansible 库存链接
- swift - 堆栈视图包装元素
- windows - 从目录输出获取每个文件的父目录
- ruby-on-rails - 创建路线在一个分支中有效,但在另一个分支中无效
- python - 基于列名的系列从数据框中获取值
- python - 如何使变量在另一个函数中可访问
- function - 函数可以在 Julia 中是本地的吗?这意味着什么?
- python - 如何对包含数组的列求和
- javascript - 如何使时间看起来与我的系统时钟相似?