【编程范式】连续数据的前面部分后移的实现
生活随笔
收集整理的這篇文章主要介紹了
【编程范式】连续数据的前面部分后移的实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
學(xué)習(xí)編程范式到第七節(jié)課了,直接上代碼:
?
// 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; } /************************************************************************/ /* 連續(xù)數(shù)據(jù)的前面部分后移的實現(xiàn) */ /************************************************************************/ 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);}
編譯的時候會發(fā)現(xiàn)錯誤,錯誤如下:
?
?
E:\vc\rotate\rotate.cpp(19) : error C2057: expected constant expression E:\vc\rotate\rotate.cpp(19) : error C2466: cannot allocate an array of constant size 0 E:\vc\rotate\rotate.cpp(19) : error C2133: 'buff' : unknown size
錯誤解析:
?
buff[beforeSize]
是錯誤的,因為這種預(yù)定義的數(shù)組是不能用變量當(dāng)作數(shù)組大小的。這也會出編譯錯誤。
如果想在運行時決定數(shù)組的大小,請用new操作符分配數(shù)組,或者malloc之類的堆分配函數(shù)。
例如:
char* buff = new char[beforeSize];
?
轉(zhuǎn)載于:https://www.cnblogs.com/dyllove98/p/3165791.html
總結(jié)
以上是生活随笔為你收集整理的【编程范式】连续数据的前面部分后移的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL保留关键字
- 下一篇: 《架构之美》学习随笔:设计第一步