永发信息网

为什么提示undefined reference to malloc-CSDN论坛

答案:2  悬赏:10  手机版
解决时间 2021-03-02 18:15
  • 提问者网友:世勋超人
  • 2021-03-02 05:46
为什么提示undefined reference to malloc-CSDN论坛
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-03-02 06:43
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>

void merge(int a[], int b[], int c[], int m, int n);
void mergesort(int key[], int n);
void wrt(int key[],int sz);
void merge(int a[],int b[],int c[],int m,int n)
{
int i = 0, j = 0, k = 0;
while (i < m && j < n)
if (a[i] < b[j])
c[k++] = a[i++];
else
c[k++] = b[j++];
while(i < m)
c[k++] = a[i++];
while(j < n)
c[k++] = b[j++];
}
void mergesort(int key[], int n)
{
int j,k,m,*w;
for (m = 1; m < n; m *= 2)
;
if (n < m) {
printf("ERROR: Array size not a power of 2 - bye!\n");
exit(1);
}
w = (int *)malloc(n*sizeof(int));
assert(w !=NULL);
for (k = 1; k < n; k *=2) {
for(j=0;j<n-k;j+=2*k)
merge(key+j,key+j+k,w+j,k,k);
for(j=0;j<n;++j)
key[j] = w[j];
}
free(w);
}
void wrt(int key[], int sz)
{
int i;
for (i = 0; i < sz; ++i)
printf("%4d%s", key[i], ((i < sz - 1) ? "" : "\n"));
}
int main()
{
int sz, key[] = { 4, 3, 1, 67, 55, 8, 0, 4,
-5, 37, 7, 4, 2, 9, 1, -1 };

sz = sizeof(key) / sizeof(int);
printf("Before mergesort:\n");
wrt(key, sz);
mergesort(key, sz);
printf("After mergesort:\n");
wrt(key, sz);
system("pause");
return 0;
}
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-02 08:08
Something underfined. only for that
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯