小编enh*_*lep的帖子

为什么缓冲区末尾和保存的帧指针之间有8个字节?

我正在为课程作业进行堆叠式练习,我已完成作业,但有一个方面我不明白.

这是目标计划:

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

int bar(char *arg, char *out)                                  
{                                                              
  strcpy(out, arg);                                            
  return 0;                                                    
}                                                              

void foo(char *argv[])                                         
{                                                              
  char buf[256];                                               
  bar(argv[1], buf);                                           
}                                                              

int main(int argc, char *argv[])                               
{                                                              
  if (argc != 2)                                               
    {                                                          
      fprintf(stderr, "target1: argc != 2\n");                 
      exit(EXIT_FAILURE);                                      
    }                                                          
  foo(argv);                                                   
  return 0;                                                    
}                                                              
Run Code Online (Sandbox Code Playgroud)

以下是在x86运行的虚拟机上Ubuntu 12.04使用已ASLR禁用的编译命令.

gcc -ggdb -m32 -g -std=c99 -D_GNU_SOURCE -fno-stack-protector  -m32  target1.c   -o target1
execstack -s target1
Run Code Online (Sandbox Code Playgroud)

当我在堆栈上查看这个程序的内存时,我看到它buf有地址0xbffffc40.此外,保存的帧指针存储在0xbffffd48,并且返回地址存储在0xbffffd4c …

c c++ linux stack-overflow gcc

6
推荐指数
1
解决办法
813
查看次数

Facebook视频共享IOS目标C出现错误

我正在尝试在Facebook上分享视频,我正在使用fbsdk新版本4.1.0,我也遵循了developer.facebook.com中的指示

  • 视频的大小必须小于12MB。
  • 共享的人应安装26.0或更高版本的iOS客户端Facebook。

我已使用以下代码在Facebook中共享视频

FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc]init];

NSURL *videoURL=[info objectForKey:UIImagePickerControllerMediaURL];

FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init];
video.videoURL = videoURL;
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init];
content.video = video;

shareDialog.shareContent = content;
shareDialog.delegate=self;
[shareDialog show];
Run Code Online (Sandbox Code Playgroud)

但问题是,

Error Domain=com.facebook.sdk.share Code=2 "The operation couldn’t be completed. (com.facebook.sdk.share error 2.)" UserInfo=0x174479f40 {com.facebook.sdk:FBSDKErrorArgumentValueKey=<FBSDKShareVideoContent: 0x174475040>, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Only asset file URLs are allowed for the native dialog., com.facebook.sdk:FBSDKErrorArgumentNameKey=videoURL}

谢谢

facebook objective-c facebook-graph-api ios

5
推荐指数
1
解决办法
1012
查看次数

是否有浏览器的视口宽度(以 css 像素为单位)可以是小数?

浏览器视口的宽度(以 px 为单位)是否有可能不是整数?

有一些设备(即带有苹果视网膜显示屏),其中“逻辑像素”在每个方向上分为两个“物理像素”,这使得 2x2=4 个物理像素的区域负责一个逻辑像素。

假设您有一个关于柯克船长的网站,并且您的标题如下:

<h1 class="small">Kirk</h1>
<h1 class="medium">Captain James T. Kirk</h1>
<h1 class="large">James Tiberius Kirk, Captain of starship USS Enterprise</h1>
Run Code Online (Sandbox Code Playgroud)

这个带有媒体查询的 CSS 使得只有这三个标题之一可见:

.small {
    display: block;
}

.medium .large {
    display: none;
}

@media screen and (min-width: 400px) {
    .small {
        display: none;
    }
}

@media screen and (min-width: 400px) and (max-width: 899px) {
    .medium {
        display: block;
    }
}

@media screen and (min-width: 900px) {
    .large {
        display: block;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,尺寸为“中”的元素显示的(逻辑)视口尺寸为 899 像素。如果视口的宽度为 900 …

html css

5
推荐指数
1
解决办法
327
查看次数

为什么解除分配堆内存要比分配它慢得多?

这是一个经验假设(分配比解除分配更快).

这也是我猜的原因之一,为什么基于堆的存储(如STL容器或其他)选择不将当前未使用的内存返回给系统(这就是为什么缩小适应成语诞生的原因).

当然,我们不应该混淆' '内存与' '类似的数据结构.


那么为什么解除分配速度较慢

它是Windows特定的(我在Win 8.1上看到它)还是OS独立的?

是否有一些C++特定的内存管理器自动涉及使用' new '/' delete '或整个mem.管理完全依赖于操作系统?(我知道C++ 11引入了一些垃圾收集支持,我从未真正使用过,更好地依赖于旧堆栈静态持续时间或自我管理容器RAII).

另外,在FOLLY字符串的代码中,我看到使用旧的C堆分配/解除分配,它是否比C++' new '/' delete ' 快?


PS请注意,问题不是关于虚拟内存机制,我知道用户空间程序没有使用真正的内存.addresation.

c++ memory memory-management heap-memory

5
推荐指数
1
解决办法
1001
查看次数

使用CSS在HTML5中居中按钮

我想知道如何在我的网站上集中一组社交媒体按钮.

我之前使用过<center>标签,但是切换到HTML5,所以我在css中拥有其他文本和图像的居中属性.但是,我链接到4个不同的社交媒体网站,他们都使用不同的编码风格来实现按钮.以下是我的代码


< - FB - > <div class="fb-like" data-href="https://www.facebook.com/pages/La-Condesa/242967619184322" data-width="20" data-height="20" data-colorscheme="light" data-layout="standard" data-action="like" data-show-faces="false" data-send="false"></div>

< - Instagram - > <style>.ig-b- { display: inline-block; } .ig-b- img { visibility: hidden; } .ig-b-:hover { background-position: 0 -60px; } .ig-b-:active { background-position: 0 -120px; } .ig-b-32 { width: 32px; height: 32px; background: url(//badges.instagram.com/static/images/ig-badge-sprite-32.png) no-repeat 0 0; } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and …

css html5 center button alignment

4
推荐指数
1
解决办法
5万
查看次数

C++ 获取 64 位应用程序的模块基地址

我最近一直在玩内存读取/编辑,遇到了一个问题,我认为这是由于 64 位应用程序引起的,我也尝试在 64 位下编译。我在 32 位应用程序中使用此脚本没有任何问题,但是当我在 Solitaire 上尝试此操作时,它无法获取基地址,从而无法计算出正确的偏移量等。这是脚本:

#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
using namespace std;

DWORD dwGetModuleBaseAddress(DWORD dwProcessID, TCHAR *lpszModuleName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
    DWORD dwModuleBaseAddress = 0;
    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
        MODULEENTRY32 ModuleEntry32 = { 0 };
        ModuleEntry32.dwSize = sizeof(MODULEENTRY32);
        if (Module32First(hSnapshot, &ModuleEntry32))
        {
            do
            {
                if (_tcscmp(ModuleEntry32.szModule, lpszModuleName) == 0)
                {
                    dwModuleBaseAddress = (DWORD)ModuleEntry32.modBaseAddr;
                    break;
                }
            } while (Module32Next(hSnapshot, &ModuleEntry32));
        }
        CloseHandle(hSnapshot);
    }
    return dwModuleBaseAddress;
}

int main()
{
    DWORD …
Run Code Online (Sandbox Code Playgroud)

c++ winapi visual-c++

2
推荐指数
1
解决办法
4万
查看次数

长文本在说话中间暂停的语音合成问题

再会。

我的语音合成在讲长文本时出现不一致的问题。

我正在尝试用英语和普通话进行文字转语音。当我指定 utterance.lang = 'en-US'; 我发现我的英文文章会一直读到读完。但是,当我使用 utterance.lang = 'zh-CN'; 我的英语和普通话文本只能读到 30 个单词。不知道是编码有问题还是什么。

文章:

E. 环果香

Enterolobium cyclocarpum,通常被称为 guanacaste、caro caro 或象耳树,是豌豆科中的一种开花树种。豆科植物,原产于美洲热带地区,从墨西哥中部南部到巴西北部(罗赖马)和委内瑞拉。它以其巨大的比例、广阔的、通常是球形的冠和形状奇特的种子荚而闻名。这种树的数量非常丰富,尤其是在哥斯达黎加的瓜纳卡斯特省,因其在强烈阳光下提供的阴凉处而备受推崇,再加上其巨大,使其成为广受认可的物种。它是哥斯达黎加的国树。

onload = function() {
    if ('speechSynthesis' in window) with(speechSynthesis) {

        var playEle = document.querySelector('#play');
        var pauseEle = document.querySelector('#pause');
        var stopEle = document.querySelector('#stop');
        var flag = false;

        playEle.addEventListener('click', onClickPlay);
        pauseEle.addEventListener('click', onClickPause);
        stopEle.addEventListener('click', onClickStop);

        function onClickPlay() {
            if(!flag){
                flag = true;
                utterance = new SpeechSynthesisUtterance(document.querySelector('article').textContent);
                utterance.lang = 'zh-CN';
                utterance.onend = function(){
                    flag = false; playEle.className = pauseEle.className = ''; stopEle.className = …
Run Code Online (Sandbox Code Playgroud)

javascript text-to-speech

1
推荐指数
2
解决办法
426
查看次数

什么溢出:表呢?

这是什么overflow: table手段或确实为一个div?有overflow: auto什么不同?

div#layout { overflow: table; }
Run Code Online (Sandbox Code Playgroud)

css

-2
推荐指数
1
解决办法
56
查看次数

我如何在嵌入式程序中进行多线程处理?

嗨,我是嵌入式程序员。最近我们遇到一个项目,我们被迫使用多线程。我已经在 java 中使用了相同的代码,但我无法实现它我的 8051 嵌入式代码。任何人都可以帮助我吗?

embedded multithreading 8051

-4
推荐指数
1
解决办法
5480
查看次数