新手求教 如何动态分配内存.

输入N,创建N个大小的一维数组,创建N个指针的一维数组, 不改变原来数组的情况,实现排序显示。

c的话用malloc申请,free释放。例如:

typedef int* dataType;
dataType* array = (dataType)malloc(N);

// TODO Something

free(array);

c++的话

typedef int* dataType;
dataType* array = new dataType[N];

// TODO Something

delete[] array;

把指针数组一一指向一维数组,然后对指针数组进行冒泡排序。
记得排序的时候只交换地址。

手工编写代码不易,问题解决的话,请点下采纳

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int arr[100];
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d", &arr[i]);
int *p = (int *)malloc(sizeof(int) * N);
memcpy(p, arr, sizeof(int) * N);
for (int i = 0; i < N - 1; i++)
for (int j = 0; j < N - i - 1; j++)
{
if (p[j] > p[j + 1])
{
int t = p[j];
p[j] = p[j + 1];
p[j + 1] = t;
}
}
printf("org ");
for (int i = 0; i < N; i++)
printf("%d ", arr[i]);
printf("\ndest ");
for (int i = 0; i < N; i++)
printf("%d ", p[i]);
printf("\n");
return 0;
}