1273 - C语言11.9

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。

另外,需要编写一个函数free,将new函数所占用的空间释放。free(p)表示将p(地址)指向的单元以后的内存段释放。
要求用结构体实现。

题目输入

只有一个正整数n,表示需要分配n个字节的内存空间。保证n不超过10000。

题目输出

只有一个字符串,为“OK”。

输入/输出样例

输入格式

1024

输出格式

OK

C语言解答

#include <stdio.h>
#include <stdlib.h>
struct string {
	char * content;
	int size;
};
int main() {
	struct string * new(int);
	void fre(struct string *);
	struct string * p;
	int n;
	scanf("%d", &n);
	p = new(n);
	fre(p);
	puts("OK");
	return 0;
}
/* new函数,为n个字符分配连续空间 */
struct string * new(int n) {
	/* 为结构体分配内存 */
	struct string * result = (struct string *)malloc(sizeof(struct string));
	/* 为字符串分配内存 */
	result->content = (char *)malloc(sizeof(char) * n);
	result->size = n;
	return result;
}
/* free函数,将p指向的内存空间释放 */
void fre(struct string * p) {
	int i;
	/* 将p->content指向的字符串空间释放 */
	free(p->content);
	/* 将p指向的结构体空间释放 */
	free(p);
}

C++解答

#include<iostream>
using namespace std;

int main()
{

	int n;
	char *p;
	scanf("%d",&n);
	p=new char[n];
	delete p;
	printf("OK\n");

	return 0;
}

Java解答



import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
   private static Scanner s = new Scanner(System.in) ;
   public static void main(String[] args) {
	   int n = s.nextInt() ;
	   
	   if(n<10000)
		   System.out.println("OK");
   }
}