1 问题

我的buff在if{}里面,然后对buff进行内存操作,最后赋值给char *类型的url,发现url最后没有得到数据

如下代码

#include <stdio.h>
#define TRUE 1void set_value(char *p)
{*p = 'c';*(p + 1) = 'h';*(p + 2) = 'e';*(p + 3) = 'n';
}int main()
{char *url = NULL;if (TRUE){char buff[10] = {0};set_value(buff);url = buff;printf("first url is %s\n", url);}//具体操作urlprintf("second url is %s\n", url);return 0;
}

我把buff定义在if{}里面,然后在实现一个函数操作buff,然后在里面赋值给url,
然后在{}外面再操作url发现url是NULL的,但是我单独这样写个Demo这个url又不为NULL

2 解决办法

后面再做了优化,把char buff[10] = {0}放在if外面

int main()
{char *url = NULL;char buff[10] = {0};if (TRUE){set_value(buff);url = buff;printf("first url is %s\n", url);}//具体操作urlprintf("second url is %s\n", url);return 0;
}

3 总结

一般字符数组赋值给char *,我们最好把字符数组和char *保持同区域

C语言之字符数组在if{}里面赋值给char *引发的问题相关推荐

  1. C语言中字符数组的初始化与赋值,字符串相关函数

    C语言中字符数组的初始化与赋值,字符串相关函数! 1.字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. (1)直接逐个初始化字符数组 ...

  2. C语言中字符数组的初始化与赋值

    1.字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. 字符数组初始化 char parr[] = "zifuchuansh ...

  3. C语言中字符数组的初始化与注意事项

    在C语言中字符数组的初始化有三种常见的方法: char a[5] = {'a','b','c','d','e'};char c[] = {'a','b','c','d','e'};char b[] = ...

  4. C语言的字符数组(字符串)的定义与初始化

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y ...

  5. 【C语言】字符数组的定义及使用

    上篇文章讲述了二维数组的相关知识,本文我们接着来讲字符数组,和字符数组里要使用的一些函数,本文所有代码均匹配于VS环境下. 目录 一.前情介绍 二.怎样定义字符数组 三.字符数组的初始化 四.字符串和 ...

  6. C/C++ | C语言字符数组初始化,有些赋值方式千万注意

    一.字符数组的定义和初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. charstr[10]={'I','','a','m','','h','a','p','p','y'}; ...

  7. java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...

    [单选题]<茶花女--饮酒歌>这段音乐属于级进还是跳进的旋律? <茶花女-饮酒歌>.mp4 [简答题] [单选题]对外汉语教学中以系统讲授语言知识的一类课型,包括语音.词汇.语 ...

  8. C语言,字符数组与字符串

    文章目录 字符数组基本介绍 字符串注意事项 字符串的访问和遍历 字符串的表示形式 用字符数组存放一个字符串: 用字符数组存放一个字符串, 用字符指针指向一个字符串 使用字符指针变量和字符数组两种方法表 ...

  9. C语言关于字符数组接受字符串解析

    C语言关于字符数组接收字符串解析 前言:在一道算法题中遇到了一个让我很诧异的问题,strlen为什么得不到正确的长度.答案是我对字符数组进行的是赋值操作,不会自动补'/0'. 本文从三个角度分析问题, ...

最新文章

  1. 流水账(4)---礼拜二---“抗议,我不是电工!”
  2. 如何优化Spring Cloud微服务注册中心架构?
  3. Pandas练习题-提高你的数据分析技能
  4. 用new关键字对一个String 变量赋值和用literal值直接赋值有什么不同(转)
  5. 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权
  6. python的文件操作os_python文件、文件夹操作OS模块
  7. C语言关键字 ISO/ANSI C90 C99 C11
  8. LeetCode 1839. 所有元音按顺序排布的最长子字符串(滑动窗口)
  9. 删除选修c语言课程的女生成绩记录,pta10-1 查询没有选修‘C语言‘课程的学生 (10分)...
  10. iOS 应用启动慢的原因找到了!
  11. 10分钟10行代码开发APP(delphi 应用案例)
  12. Nuget如何管理本地的包
  13. 成功创业者培养的四个习惯
  14. android 平板键盘布局,7款Android平板输入法横向评测,安卓平板软件HD/THD下载
  15. 通达OA——前台任意用户伪造登录
  16. uboot 源码官方下载地址
  17. eot文件html,html – 为什么IE8没有加载我的eot文件?
  18. 前端实现导入PPT在线编辑
  19. 哈尔滨傲澜智伴机器人_智伴机器人品质保证(在线咨询),机器人
  20. Java字符串分割方法split()的功能以及使用方法的详细介绍!

热门文章

  1. 谷歌开源3D舞蹈生成模型FACT,舞姿清奇!
  2. ABP Framework:移除 EF Core Migrations 项目,统一数据上下文
  3. 跟我一起学.NetCore之.NetCore概述
  4. 初识ABP vNext(3):vue对接ABP基本思路
  5. Sql Server之旅——第八站 看公司这些DBA们设计的这些复合索引
  6. Dapper操作MySQL数据库获取JSON数据中文乱码
  7. 【.NET Core 3.1】 策略授权中获取权限数据
  8. .NET Core 3.0预览版7中的ASP.NET Core和Blazor更新
  9. 从CLR GC到CoreCLR GC看.NET Core对云原生的支持
  10. .NET Core 使用MailKit发送电子邮件