我已经编写了以下代码来清楚地了解malloc和realloc.我使用malloc初始化指针然后使用realloc,我增加了数组的大小.但是当我运行代码时,我得到以下错误.
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p = malloc(10);
p = " this is it";
printf("\n%s", p);
p = realloc(p, 14);
p[11] = 'A';
p[12] = 'B';
p[13] = 'C';
printf("\n %s", p) ;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
ajay@ajay-K54L:~$ gcc te.c
ajay@ajay-K54L:~$ ./a.out
*** glibc detected *** ./a.out: realloc(): invalid pointer: 0x000000000040071c ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7e626)[0x7fb111e88626]
/lib/x86_64-linux-gnu/libc.so.6(realloc+0x2de)[0x7fb111e8d3ee]
./a.out[0x4005dc]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7fb111e2b76d]
./a.out[0x4004d9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:03 3027043 /home/ajay/a.out
00600000-00601000 r--p 00000000 08:03 3027043 /home/ajay/a.out
00601000-00602000 …Run Code Online (Sandbox Code Playgroud) 如何为main函数参数设置默认值,如用户定义的函数?
在perfmontool 中Pages/sec,Avg Disk Queue Length并且% Performance Time是其中存在的默认计数器。我想sqlservr在 perfmon 工具中监控计数器,所以我添加了sqlservr. 如果我关闭 perfmon 工具并重新打开,则无法看到我添加的 sqlservr 计数器。如何保存它以便我可以在打开时随时监控?还是sqlservr每次打开都需要添加计数器perfmon?
我来自使用VB.NET的.NET编程,这是我对基于Arduino的应用程序的第一个C开发.
通过阅读Arduino头文件(寻找类似于某种.ToString方法的东西__FlashStringHelper),我偶然发现了下一个#define
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
Run Code Online (Sandbox Code Playgroud)
首先我明白了:
这是一个带有参数名称的宏,string_literal此参数以某种方式用于括号内的表达式中.就这样!
什么是这些<,>标志和*指针突然签署?
该计划很简单:
1)它接受用户的名字2)询问他购买了多少物品以及花费多少3)如果输入任何> 10项,则表示"请输入大于0(零)且小于10(10)的数字你想继续生成另一个账单吗?(是/否)"4)用户输入'Y',它应该把他带到do循环的开头并重新开始.
介于两者之间的一切都很好.这是代码:
int main()
{
char item[10][10], answer = 'null', name[10];
int price[10], total_item, total_price = 0, i, j = 0, a;
float service_tax = 0, vat = 0,total_bill = 0, bill = 0;
printf ("Please enter your name: ");
scanf ("%s", name);
do
{
printf ("\n Enter the total items purchased (must be more than 0 (zero) and less than 10 (ten): ");
scanf (" %d", &total_item);
if(total_item > 0 && total_item <= 10)
{
for(i = …Run Code Online (Sandbox Code Playgroud)