我想知道char s[] = "hello"
和之间的区别是什么char *s = "hello"
.
据我所知,内存中有五个数据段,Text,BSS,Data,Stack和Heap.
根据我的理解,
在以下情况下char s[] = "hello"
:
"hello"
在文本中.s
如果是全局变量,则在Data中;如果是局部变量,则在Stack中.
我们还有一个存储"hello"
位置的副本s
,因此我们可以修改此字符串的值s
.
在以下情况下char *s = "hello"
:
"hello"
在文本中.s
如果是全局变量,则在Data中;如果是局部变量,则在Stack中.s
只是指向"hello"
Text并且我们没有它的副本,因此通过此指针修改字符串的值应该导致"Segmentation Fault".我对吗?
当我尝试使用FFmpeg访问网络摄像头时,Mac上出现了一个非常奇怪的问题.例如:
ffmpeg -f avfoundation -i "1" -framerate 60 -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test
Run Code Online (Sandbox Code Playgroud)
无论我设置什么帧率,错误总是一样的.
[avfoundation @ 0x7ff831800000] Selected framerate (29.970030) is not supported by the device
[avfoundation @ 0x7ff831800000] Supported modes:
[avfoundation @ 0x7ff831800000] 320x240@[120.101366 120.101366]fps
[avfoundation @ 0x7ff831800000] 640x480@[120.101366 120.101366]fps
[avfoundation @ 0x7ff831800000] 800x600@[60.000240 60.000240]fps
[avfoundation @ 0x7ff831800000] 1024x768@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000] 1280x720@[60.000240 60.000240]fps
[avfoundation @ 0x7ff831800000] 1280x1024@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000] 1920x1080@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000] 320x240@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000] 640x480@[30.000030 30.000030]fps
[avfoundation @ …
Run Code Online (Sandbox Code Playgroud) 我对AngularJS表达式感到困惑.
从w3schools.com,我了解到了这一点
{{ expression }}
.ng-bind="expression".
但为什么我们用ng-src={{...}}
而不是ng-src="..."
?
ng-src
处理AngularJS表达式时是一种特殊情况吗?
我想使用FFmpeg从Mac流式传输我的网络摄像头.
首先,我使用了检查支持的设备 ffmpeg -f avfoundation -list_devices true -i ""
输出:
[AVFoundation input device @ 0x7fdf1bd03000] AVFoundation video devices:
[AVFoundation input device @ 0x7fdf1bd03000] [0] USB 2.0 Camera #2
[AVFoundation input device @ 0x7fdf1bd03000] [1] FaceTime HD Camera
[AVFoundation input device @ 0x7fdf1bd03000] [2] Capture screen 0
[AVFoundation input device @ 0x7fdf1bd03000] [3] Capture screen 1
[AVFoundation input device @ 0x7fdf1bd03000] AVFoundation audio devices:
[AVFoundation input device @ 0x7fdf1bd03000] [0] Built-in Microphone
Run Code Online (Sandbox Code Playgroud)
设备[0]是我想要使用的网络摄像头.
然后我尝试使用捕获网络摄像头 ffmpeg -f avfoundation -i "0" out.mpg
输出: …
当我试图在Ubuntu上链接OpenCV库时,发生了一些我无法理解的问题.
我在Ubuntu 14.04上使用了OpenCV 2.4.11和Qt创建器.
在我的项目文件中,我写道
INCLUDEPATH += /usr/local/include/opencv
INCLUDEPATH += /usr/local/include/opencv2
LIBS += -L/usr/local/lib\
-lopencv_calib3d\
-lopencv_contrib\
-lopencv_core\
-lopencv_features2d \
-lopencv_flann\
-lopencv_gpu\
-lopencv_highgui\
-lopencv_imgproc\
-lopencv_legacy\
-lopencv_ml\
-lopencv_nonfree\
-lopencv_objdetect\
-lopencv_ocl\
-lopencv_photo\
-lopencv_stitching\
-lopencv_superres\
-lopencv_ts\
-lopencv_video\
-lopencv_videostab
Run Code Online (Sandbox Code Playgroud)
但是在构建项目时存在许多错误,例如undefined reference to 'cvCreateMat'
.显然,OpenCV没有正确地链接到我的项目.
因此,我在网上搜索并尝试了一种可能的解决方案,就是这样
CONFIG += link_pkgconfig
PKGCONFIG += opencv
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,它工作,并没有再次链接错误.
但是,我仍然无法理解为什么它不能以第一种方式工作,因为我已经在Mac OS X上以这种方式成功设置了我的项目.为什么它现在不适用于我的Ubuntu?
我试过pkg-config --libs opencv
,结果是
-L/usr/local/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -ltbb -lXext -lX11 -lICE …
Run Code Online (Sandbox Code Playgroud)