精华内容
下载资源
问答
  • 我有一个A类:定义了一个结构体typedef struct{int sockfd;on_av_frame_cb av_frame_cb;on_av_frame_cb rtp_cb;on_error_cb error_cb;uint8_t *p_buf;uint8_t *v_buf;uint8_t *a_buf;int rtp_flag;...

    我有一个A类:

    定义了一个结构体

    typedef struct

    {

    int sockfd;

    on_av_frame_cb av_frame_cb;

    on_av_frame_cb rtp_cb;

    on_error_cb error_cb;

    uint8_t *p_buf;

    uint8_t *v_buf;

    uint8_t *a_buf;

    int rtp_flag;

    }udp_client_t;

    然后我再B类中调用:

    static udp_client_t client;

    int jldv_create_client(int src_port,int port ,const char *dst_ip){

    udp_client_t *udpClient = &client;

    assert(udpClient != NULL);

    const char *c_ip = dst_ip;

    memset(udpClient, 0, sizeof(udp_client_t));

    int ret = create_client(src_port, port, c_ip, &udpClient);

    if (ret != 0) {

    goto err_output;

    }

    udpClient->av_frame_cb = (on_av_frame_cb )onVideoFrame;

    udpClient->error_cb = on_error;

    if (rtp_create(&udpClient) < 0) { ///问题所在之处

    goto err_output;

    }

    printf("rtp_client:%d \n",udpClient->rtp_flag);

    return 0;

    err_output:

    destroy_client(udpClient);

    return -1;

    }

    在上述的问题所在之处中,我使用了C类的方法:

    int rtp_create(udp_client_t **data)

    {

    logi("%s", __func__);

    udp_client_t *udpClient = *data;

    if(udpClient)

    {

    udpClient->rtp_flag = 1;

    memset(&rtp_cxt, 0, sizeof(rtp_context_t));

    int ret = init_server();

    if (ret < 0)

    {

    return -1;

    }

    rtp_cxt.nalu = alloc_nalu(MAX_FRAME_SIZE);//为结构体nalu_t及其成员buf分配空间。返回值为指向nalu_t存储空间的指针

    if (!rtp_cxt.nalu)

    {

    loge("alloc nalu failed");

    return -2;

    }

    }

    else

    {

    loge("%s: data is null", __func__);

    return -3;

    }

    printf("udpClient after==>%d \n",udpClient->rtp_flag);

    return 0;

    }

    然而打印的结果却是:

    udpClient after==>1

    rtp_client:0

    这是为什么?

    是我使用的不对吗?求解各位大神。。

    展开全文
  • ``` int main() { int b=1; int *c=&b;...于是,我想,自己定义个指针,然后按照调试的地址格式,我手动赋值个地址 ...失败了,说是类型不匹配,我很纳闷 ,格式明明和调试的那个地址相同啊,为什么不行呢?
  • - 取余数失败, position数组中所有赋值都是零 - 我看了一晚上也没研究明白, 求大神指点, 感激不尽 ```c #include int main() { int num; int i = 0; int j; int position[4] = {-1, -1, -1, -1}...
  • C语言编程和高级语言相比,思维逻辑还是有些不一样的。例如今天遇到的问题,我在onload函数中给一个变量赋值,紧接着要使用,但发现变量依旧是空的,代码如下: onLoad: function (options) { news.limit(5)....

    本人一直以来都是C程序员,最近有需求,需要做个微信小程序,其中有不少坎坷。C语言编程和高级语言相比,思维逻辑还是有些不一样的。例如今天遇到的问题,我在onload函数中给一个变量赋值,紧接着要使用,但发现变量依旧是空的,代码如下:

      
    onLoad: function (options) {
        news.limit(5).get({
          success:res=>{
            this.setData({newsList:res.data})
          }
        })
    
        console.log(this.data.newsList);
        this.setSwiperImg();//这个函数中用到了newsList变量
        
      }

    实际发现后面日志和setSwiperImg()函数中用到的newsList都是空的。但是在调试窗口查看变量是有值的。

    其实老鸟可能一眼就看出了上面代码的问题,我的思维一直固化在C的顺序执行里面(虽然C也可以做到异步执行,但是大多数时候都是顺序执行的)。最后想了半天,终于顿悟了:

          success:res=>{
            this.setData({newsList:res.data})
          }
    

    这个应该是个回调函数,在news.limit(5).get执行成功后,异步回调执行。所以在时间上是滞后的。在我后面语句使用到newsList变量的时候,回调还没执行呢。既然想通了,那么立即修改为:

      onLoad: function (options) {
        news.limit(5).get({
          success:res=>{
            this.setData({newsList:res.data})
            console.log(this.data.newsList);
            this.setSwiperImg();
          }
        })
      },

    保存,运行,OK!

    展开全文
  • c语言对变量进行强制赋值一级目录解决方案1.memcpy2.自写函数 一级目录 在一个demo中需要把char进行转换到unsigned int 一开始尝试使用strcpy方法,或者直接对char进行强转 均失败 解决方案 1.memcpy unsigned int ...

    c语言对变量进行强制赋值

    一级目录

    在一个demo中需要把char进行转换到unsigned int
    一开始尝试使用strcpy方法,或者直接对char进行强转 均失败

    解决方案

    1.memcpy

    unsigned int value;
    char url[5];
    memcpy(&value,url,4);
    

    2.自写函数

    unsigned int value;
    char url[5];
    int i;
    for(i=0;i<4;i++)
    {
        *((char*)&addrvalue+i)=addurl1[i];
    }
    

    这里是通过recv接收到的网络地址转换成“.”点隔的字符串格式,因为使用了加密操作,所以使用解密还原,指针用好真的香。

    展开全文
  • 关于这个赋值失败提示 test.c:146:12: error: assignment to expression with array type,是我在写链表时给结构体赋值发现的,编译的时候提示了这个: 因为我的是指针给数组赋值,所以我一开始一位是我指针的数据...

    一、原因

    一、解决办法

    关于这个赋值失败提示 error: assignment to expression with array type,是我在写链表时给结构体赋值发现的,编译的时候提示了这个:

    在这里插入图片描述

    原因:

    (1)数组不能直接给数组赋值

    (2)指针不能直接给数组赋值

    如下是几种常见的指针与数组间的赋值问题:

    char a[] = {'a','b','c'};
    char b[3];
    
    >char  c[3]  = a;	//错误---》数组不能直接给数组赋值
    char  d[3] 	= p;	//错误---》指针不能直接给数组赋值
    char *p  = a;	//正确赋值,数组名为数组首元素地址,因此可使用指针保存该地址(指针只能保存地址)
    strcpy(b,a);	//正确,使用标准库函数可实现字符串拷贝
    char **p1 = &p;	//正确,二级指针可接收一级指针的地址
    


    解决办法:

    在这个地方可以使用strcpy()/strncpy这个函数把一个地址上的数据复制到另一个地址上去

    函数原型:

    #include <string.h>
    
    char *strcpy(char *dest, const char *src);
    用法:把src这个地址的地址的字符串赋值到dest这个地址去
    
    char *strncpy(char *dest, const char *src, size_t n);
    用法:把src这个地址的地址的n个字符串赋值到dest这个地址去
    

    展开全文
  • C语言字符学习总结

    2019-11-29 16:14:29
    ##C语言字符学习总结 void main() { char szStr="A"; //错误的赋值 字符串不能赋值给字符 字符串末尾有结束符\0 [Warning] initialization makes integer from pointer ... //打印的不是字符A,说明赋值失败 ...
  • C语言与C++

    2020-03-16 23:13:41
    c语言代码: int a =10; int a;//没有赋值,当做声明 int main() { printf(“a:%d\n”,a); return EXIT_SUCCESS; } 此代码在c++下编译失败,在c下编译通过。 2.c++中所有的变量和函数都必须有类型 3.更严格的类型...
  • C语言编程要点

    2017-09-18 00:10:37
    11.5. 怎样获得一个能报告条件失败的程序? 164 第12章 标准库函数 165 12.1. 为什么应该使用标准库函数而不要自己编写函数? 165 12.2. 为了定义我要使用的标准库函数,我需要使用哪些头文件? 166 12.3. 怎样编写参数...
  • C语言基础12

    2020-07-29 22:17:09
    复习: 1、输出缓冲区 程序输出的数据并没有立即写入"文件",而先... 1、当想从输入缓冲区中读取整型和浮点型数据时,而缓冲区中的数据是字母或符号,此时会读取失败,并且不会从缓冲区中拿走字母或符号,导致接下来
  • C语言几个小函数

    2017-07-11 16:59:17
    *编写一个函数给一个变量赋值,如果赋值失败(值会依然留在缓冲区),丢弃该输入行的所有剩余内容。代码如下:int right_num() { int number; while((scanf("%d", &number)) != 1) { while (getchar() != '\n') ...
  • C语言的设计模式

    2021-01-27 13:21:39
    看看下面这段代码: 可能很多人一眼看上去并没有什么问题,先让我们看看这个库函数的定义:正常情况下pBuf是新空间的地址没有任何问题,但我们考虑下如果分配失败了呢,pBuf会被赋值成NULL,pBuf原指向的地址空间就...
  • C语言实训(一)

    2020-02-09 13:18:30
    (在c语言中0代表失败) return 0;代表终止 编译:(编译成功后生成).cpp 执行:看到执行效果 变量:整形:int、short、long 浮点型:float、double 字符型:char c=’a’; ASCII 字符串:String s=”abcdef12...
  • C语言进阶学习第一章

    2017-05-09 11:20:00
    1.在C语言里面使用scanf给某个变量赋值时候,如果成功返回1,失败返回0;测试代码如下: /***假如在键盘输入的不是整形数据,则输出0,否则输出1***/ void main() { int a;//整形变量 printf("%d",scanf("%...
  • @宋思怡的工作日记 代码 #include <stdio.h> #include <stdlib.h>... //二维度的大小要足够大否则赋值失败 char ip_name[10][50]; } IP_INFO; void write_file(char *ip_param_file) { FILE
  • c语言malloc和free函数

    2020-11-13 18:36:44
    while((p = malloc(100*1024*1024)))//malloc分配内存空间,返回void指针,若分配失败则返回NULL { cnt++; } printf("成功分配了%d00MB的空间",cnt); free(p); //free函数:释放malloc过来的内存(赋值的...
  • c语言代码: int a = 10; //赋值,当做定义 int a; //没有赋值,当做声明 int main(){ printf("a:%d\n",a); return EXIT_SUCCESS; } 此代码在c++下编译失败,在c下编译通过. ...
  • C语言fseek函数了解

    万次阅读 2012-12-13 15:29:47
    不是定位文件指针,文件指针指向文件/流,文件指针如果不重新赋值将不会改变指向别的文件。 位置指针指向文件内部的字节位置,随着文件的读取会移动。 int fseek(FILE *stream, long offset, int fromwhere); ...
  • 二叉树操作集,C语言实现,数据结构 创建二叉树 //采用前序初始化二叉树 //中序和后序只需改变赋值语句的位置即可 void CreateBT(BinTree * BT) { char data; scanf("%c",&data); if (data!='#') { if (!...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型...
  • 难道在C语言中一个结构不能包含指向自己的指针吗? o 2.7 怎样建立和理解非常复杂的声明?例如定义一个包含 N 个指向返回指向字符的指针的函数的指针的数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示...
  • 不少人看到这个问题后感觉无从下手,会自然想到用两个变量之间相互赋值来企图“暴力求解”,但最终都以失败告终。其实,解决这类问题,我们可以有两个思路。 一是采用引入一个新变量,以此新变量作为媒介进行交换。...
  • 在这里主要是对结构体中的一维数组及一些普通变量赋值。普通变量在定义的同时可以赋值,这个过程叫做变量的初始化。 2.3文件数据导入 打开系统文件,并进行数据的导入。如果打开文件失败,系统会输出“教师工资信息...
  • 由于我分配的内存只有4字节(malloc(sizeof(int))),程序运行过程中发生了越界赋值的操作,即在4字节以外的地址进行了赋值操作。这样导致破坏了原本malloc的4个字节的内存,所以free()就失败并报错了。 C语言编程...
  • 运行失败 大家都知道,重复在main函数中定义变量会报错 但为什么上面定义不报错呢? 得出结论:  (1)全局变量定义和声明有区别  (2)局部变量定义和声明没有区别 说明:  例如 int a :是定义 ,而 ...
  • “初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。 “操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。 ...
  • 本实验通过C语言来实现数据结构中的单链表,以及通过函数调用的方式对写好的操作单链表的功能函数进行实验,并完成指定的测试操作。 (1)从键盘输入数字1-12和14来完成对链表的不同操作,如果数字越界,不会执行...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

c语言赋值失败

c语言 订阅