正文
c语言不固定长度的函数 c语言不定长数组动态赋值
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
c语言问题,不定长参数
这样的输出结果是不确定的!
-------
分析:你在args函数中对不定参进行遍历,但要求最后是0时跳出循环,
显然main中的数据不符合要求,导致遍历溢出,结果难以预测。
-------
修正:
void main(){
args(1,2,0);
}
输出:
2
在C语言中,怎么样由键盘输出一个不限定长度的字符串?
#include stdlib.h
#include stdio.h
#define STRLEN 20
void main()
{
char *arr = (char *)malloc(sizeof(char) * STRLEN); // 保存字符串c语言不固定长度的函数,初始长度设定为STRLEN
char input; // 保存一个从输入流传入的字符
int strSize = STRLEN; // 计算arr字符串能存储的最大长度
int strLength = 0; // 存储arr已经存储的字符串长度
while ((input = getc(stdin)) != '\n') // 从输入流读取一个字符c语言不固定长度的函数,如果这个字符不是\n
{
arr[strLength] = input; // 将这个字符放入arr
++strLength; // arr已存储长度加1
if (strLength == strSize) // 如果字符串长度已经超过了arr的最大能存储长度
{
arr = (char *)realloc(arr, strSize + STRLEN); // 在原来arr的大小上,重新申请一个多STRLEN长度的空间
strSize += STRLEN; // 将arr能存储的最大长度更新
}
}
arr[strLength] = '\0'; // 在字符串末尾加'\0'以示结束
return;
}
c语言不固定长度的函数你是否想要一个这样功能,满意请采纳。这个函数可以动态生成字符串大小。你输入的越多,字符串越大,每次递增的大小为STRLEN的大小
C语言数组名做函数参数,形参为什么不定长度
在C语言中,如果把数组作为一个函数的参数的话,在对函数进行传值的时候只是把数组的首地址传过去,也就是指针传过去,所以再用sizeof(array)/sizeof(int)求数组的大小只能得到1。
可以提前把数组的长度求出在单独定义一个长度参数进行传值。
C语言不定长参数的问题
说c语言不固定长度的函数的有点混乱,提供几个方法。1,c语言不固定长度的函数你c语言不固定长度的函数的WHILE另开一个线程.2做一个LIST保存每个LOG的信息,每个信息是NEW出来的。
说实话,我还是没明白你补充的意思。
我写个伪代码吧,希望能有点启发
list LOG_INFO* info_list;
while ()
{
...//some function
//new出来的东西在堆上,不会被释放掉,所以一直都存在
LOG_INFO* log_info = new LOG_INFO();
//放到炼表里保存指针
info_list.push_back(log_info);
...//some function
}
output_log(info_list);//把炼表给输出的函数
release_info(info_list);//释放new的东西。
基本是这个意思,就是你new出来的东西不会被释放.
另外log_info可以是一个类,里面变的东西都可以设置,当然有的东西没有可以不设置.因为具体问题不清楚,所以可能更优化.
而输出的时候是根据类里面的成员变量进行输出的.
举例:
比如可能输出的是字符串也可能输出图片那么可以定义如下
class Info
{
string str;
Image image;
bool is_str;
bool is_image;
}
然后判断到底有什么,当然也可以用指针等其c语言不固定长度的函数他方法进行数据结构的优化.
关于c语言不固定长度的函数和c语言不定长数组动态赋值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。