【编程范式】连续数据的前面部分后移的实现
来源:互联网 发布:闻战网络歌手 编辑:程序博客网 时间:2024/04/28 20:35
学习编程范式到第七节课了,直接上代码:
// rotate.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "memory.h"#include "string.h"int main(int argc, char* argv[]){printf("Hello World!\n");return 0;}/************************************************************************//* 连续数据的前面部分后移的实现 *//************************************************************************/void rotate(void * front,void * middle,void * end){int beforeSize = (char *)middle - (char *)front;int endSize = (char*)end - (char *)middle;char buff[beforeSize];memcpy(buff,front,beforeSize);memmove(front,middle,endSize);memcpy((char *)end-beforeSize,buff,beforeSize);}
编译的时候会发现错误,错误如下:
E:\vc\rotate\rotate.cpp(19) : error C2057: expected constant expressionE:\vc\rotate\rotate.cpp(19) : error C2466: cannot allocate an array of constant size 0E:\vc\rotate\rotate.cpp(19) : error C2133: 'buff' : unknown size
错误解析:
buff[beforeSize]
是错误的,因为这种预定义的数组是不能用变量当作数组大小的。这也会出编译错误。
如果想在运行时决定数组的大小,请用new操作符分配数组,或者malloc之类的堆分配函数。
例如:
char* buff = new char[beforeSize];
- 【编程范式】连续数据的前面部分后移的实现
- 范式编程之栈的实现
- ArrayList.add后,前面数据被覆盖的问题
- ArrayList.add后,前面数据被覆盖的问题
- 编程范式的示意图
- C++的编程范式
- C++的编程范式
- 实现在删除数据后,自增列的值连续
- 将n个整数前面的数据后移m位
- 编程实现连续输的格式输出
- mysql删除一条数据后id不在连续的解决方法
- python 使用list.append()后前面的数据被后面的数据覆盖-解决办法
- python 使用list.append()后前面的数据被后面的数据覆盖-解决办法
- 关于编程范式的理解
- C++支持的编程范式
- swift 语言的编程范式
- Java:深邃的编程范式
- 编程范式,程序员的编程世界观
- NSPredicate的用法
- Android和iOS那个好?
- 资产负债表的结构和作用
- iOS动画效果和实现
- Simics安装solaris 10 sparc以及使用配置
- 【编程范式】连续数据的前面部分后移的实现
- Fiddler (四) 实现手机的抓包
- 如何修改表空间以及修改索引表空间
- java netty之ChannelPipeline
- MFC 禁止调整窗口大小
- 《商业模式新生代》
- 关于不规则区域的鼠标判定方法(一)---凸包实现.
- Linux内核参数和模块参数
- WEB界面设计规范