C语言错误:request for member ‘xxx’ in something not a structure or union

今天在编译一个C语言程序时,对于结构体变量,报出错误 Error: request for member ‘xxx’ in something not a structure or union。

经过调试发现是 . 与 -> 搞错了。

如果它是地址,就在它后边用 ->,如果它不是地址,就在它后边就用 .

代码举例简略如下:

#include <stdio.h>

#include <string.h>

typedef struct Test_t

{

  char name[20];

  int age;

}Test_s;

void test(Test_s* mytest)

{

  char* ptr = "hello";

  memcpy(mytest->name, ptr, strlen(ptr));  //mytest是一个结构体指针,因此使用“结构体指针名->成员变量名”来引用变量

  mytest->age = 20;

}

int main()

{

  Test_s tt;

  int ret = 0;

  memset(tt, 0, sizeof(tt));

  test(&tt);

  printf("Name:%s\n", tt.name);    //tt是个结构体变量,因此使用 “结构体名.成员变量” 来引用变量

  printf("Age:%d\n",tt.age);

  return ret;

}

时间: 2024-08-06 16:01:56

C语言错误:request for member ‘xxx’ in something not a structure or union的相关文章

相对路径获取项目文件 及报错 No mapping found for HTTP request with URI XXX in DispatcherServlet with name ‘springmvc’解决方法

首先一点,WebRoot目录下的文件是都可以通过浏览器输入路径,直接读取到的 例如这样: 而WebRoot下面WEB-INF是无法浏览器输入路径直接读取的. 因为是受保护的. 如果jsp读取一个图片的话. jsp在WebRoot/jsp下 图片在WebRoot/imag下 那么就要../imag/xx.jpg获取相对路径. 因为servlet程序是无法读取C:\xx\xx\xx这样的绝对路径的. 除非更改tomcat配置文件,但我觉得那样完全没有意义. 另外,要注意你请求的路径是否被拦截. 例如

C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”

背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:"无法启动程序"-\xxx.exe" 系统找不到指定的文件",如截图1. 截图1 解决方法 1.选择工程,右键单击属性,打开工程的属性页,参考截图2: 截图2 2.选择"配置属性->General",选择output directory ,设置为"inherit f

org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [XXX] in DispatcherServlet with name &#39;springMVC&#39;

在web.xml中添加 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.ico</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png<

C语言-错误处理

标记程序的运行状态和控制主要有以下几种:break/continue/return/参数的返回值/exit(int n)_exit() atexit((*p)(参数列表)): 1 break:用在开关语句.循环语句.和if结合使用.表示跳出当前开关.循环体(仅跳出一层),执行开关循环体后面的程序,和if结合使用表示满足条件则结束循环.注意break对if else不起作用,在多次循环中只能跳出一层. 2 continue:用在循环体.和if配套使用.表示结束本轮循环强制进行下一轮循环.和if结合

错误21002:[SQL-DMO]用户&quot;xxx&quot;已经存在

原文:错误21002:[SQL-DMO]用户"xxx"已经存在 转载自:http://topic.csdn.net/u/20120829/09/faf381b6-d4e9-4f97-a21f-d1adfd43fbe4.html?seed=1190913404&r=79566866#r_79566866 MSSQL2000迁移数据库或者还原数据库后,新建相同用户名的时候或者指定数据库登录用户时出现错误提示:"错误21002:[SQL-DMO]用户"xxx&qu

Go语言开发(七)、Go语言错误处理

Go语言开发(七).Go语言错误处理 一.defer延迟函数 1.defer延迟函数简介 defer在声明时不会立即执行,而是在函数return后,再按照FILO(先进后出)的原则依次执行每一个defer,一般用于异常处理.释放资源.清理数据.记录日志等.每次defer语句执行时,defer修饰的函数的返回值和参数取值会照常进行计算和保存,但是defer修饰的函数不会执行.等到上一级函数返回前,会按照defer的声明顺序倒序执行全部defer的函数.defer所修饰函数的任何返回值都会被丢弃.如

Tensorflow 错误:The flag &#39;xxx&#39; is defined twice

添加 FLAGS = tf.app.flags.FLAGS lst = list(FLAGS._flags().keys()) for key in lst: FLAGS.__delattr__(key) 或 FLAGS = tf.app.flags.FLAGS lst = list(FLAGS._flags().keys()) for key in lst: FLAGS.delattr(key) 参考文献: https://blog.csdn.net/qq_40488484/article/d

iOS 使用AFNetworking遇到错误 Request failed: unacceptable content-type: text/html

错误日志: Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7f999be478d0> { URL: myUrlX

C语言错误处理

学习C++的时候就没有怎么重视异常这部分知识,后来知道也基本没有看到C++项目里面用try/catch的.google编程规范中甚至直接说明不使用C++这个特性,所以我一直都没搞明白这个"简单的"try/catch. 查阅<C++编程思想>,我记录以下一些内容.首先是C语言的一些错误处理方法. 1) 出错信息可通过函数的返回值获得.如果函数返回值不能用,则可设置一全局错误判断标志(标准 C语言中 errno( )和perror( )函数支持这一方法).由于对每个函数调用都进